Content management systems (CMS), document management systems (DMS) and data management systems refer to systems for managing electronic documents. In the present disclosure the term “document management system” is a general term referring also to content and data management systems. Such systems comprise various features for managing electronic documents, e.g. storing, versioning, indexing, searching for and retrieval of documents. It is appreciated that there are both dynamic and static document management systems. The difference between dynamic and static systems is the way they store files. In the static systems files are stored e.g. in a constant treelike hierarchy that defines relationships for folders and documents stored in the tree. In the dynamic systems the files may be given identifications that define their existence in the system. The location of the files is not constant, but may vary in a virtual space depending on the situation.
An electronic document is media content in an electronic form that has been created and can be used by an electronic device. One of the benefits of electronic documents is that they can contain references to other electronic documents or to parts of other electronic documents. This means that an electronic document gives a possibility to lookup dynamically the content of other documents. For example a drawing of a house (host file) may refer to a floor plan (referenced file). The references may be absolute pathnames or relative pathnames. Absolute pathname contains information needed to locate a file with respect to the root directory (instead of the term “directory” also the term “folder” may be used). A relative pathname contains information necessary to locate a file with respect to the location of some other file. A reference containing a relative pathname specifies the location of the referenced file relative to the location of the host file. When a referenced file is located in the same directory as the host file, the reference contains the name of the referenced file. Often the name of the referenced file in the pathname is prefaced by the characters “.\”, but this is not a requirement. Therefore if “drawing.dwg” and “floorplan.tif” were located in the same directory, the relative pathname in the reference would be “.\floorplan.tif” or “floorplan.tif”. Naturally, relative pathnames may refer to a different directory, e.g. to a parent directory of a host file (i.e. “..\floorplan.tif”) or to a subfolder, e.g. to a subfolder “scan” of a folder where the host file is located (that is, “scan\floorplan.tif” or “.\scan\floorplan.tif”). On the other hand an absolute pathname is a list of subdirectories into which one must descend to reach the referenced file, beginning with the root directory. If the file “floorplan.tif” is in a directory named “plans”, which in turn is stored in C:\, the absolute pathname of the file “floorplan.tif” is then “C:\plans\floorplan.tif”. Absolute pathnames may also lead to network drives. These paths are called UNC paths (Universal Naming Convention/Uniform Naming Convention), and are in the form of e.g. “\\server01\shareA\map2.dwg”. FIG. 1 presents an example of a host file D0 that contains references to files D10, D20, D30, D40, D50. The purpose of FIG. 1 is to show examples of different pathnames (“.\floorplan.tif”, “maps\map.dwg”, “..\logo.png”, “C:\Plans\floorplan2.tif”, “\\server01\shareA\map2.dwg”) that can be used for referring. The skilled person will appreciate that the previously disclosed paths and forms of the pathnames are only examples of absolute and relative pathnames. The referenced files may also refer further to other files. Such a reference is called a nested reference. FIG. 1 comprises an example of a nested reference, where the host file D0 contains a reference to a file D40 (“map.dwg”) that further contains a reference to an image file D45 (“cottage.tif”) being located on “C:\Buildings\” directory.
The file references may exist between different types of files. As an example a Word file may refer to another Word file, to an Excel sheet and/or to an image file. As another example, an AutoCAD drawing may refer to another AutoCAD drawing and/or to an image file. The skilled person will appreciate that other reference combinations are possible as well.
In order to display the referenced files properly at the time the host file is opened, the references need to operate correctly. Each reference operates correctly only if the referenced file can be found by the absolute or the relative pathname. In other words, the absolute or relative locations need to be maintained, otherwise the references break down.
A problem relating to breakdown of references often occurs when file entities or single files are transferred from a hard disk or from a network to another location, e.g. into a document management system. The references may rupture when the absolute and/or relative locations of the files are changed. The problem is emphasized when files or file entities are transferred to a dynamic data management system, such as the M-Files® document management system of the applicant, where the files can be located in various dynamic directories. In a new system (i.e. target system, where the files are transferred to) the mutual relative location of the files is likely different than in their original location on the hard disk or in the network. In that case, an opening of a host file in a new system does not work completely because the opening application cannot find the referenced files any longer.
Some solutions of related art for preventing the aforementioned problem comprise transfer tools by means of which references can be remedied automatically either partly or completely before, during or soon after the files are transferred. This means that the transfer tools repair the references in connection with the transfer action. The transfer tool typically operates so that the files are opened one by one, and any references in each file are repaired by utilizing the information about the old and new locations of the files, which information is available to the transfer tool that transfers the files. By means of such a transfer tool, the whole data (i.e. the complete file entity) typically need to be transferred in one go, so that all the references will remain valid.
Other solutions of related art, on the other hand, may be based on a treelike structure that is duplicated (copied) in the document management system. In other words, a directory tree appearing on a hard disk is copied to the document management system. By means of such a solution, the relative references between files are maintained and such references do not need to be updated. However, e.g. dynamic document management systems aim to discard static file hierarchies whereby such a hierarchy is not desired to be duplicated. In such a dynamic system, the directory structure will be lost and the need for repairing relative references arises. Additionally, even though relative references between files remain valid by means of such a solution, the absolute references will typically break down.
One example of a method for maintaining integrity of links has been disclosed in U.S. Pat. No. 6,449,615. This solution comprises a link tracking service that is configured to track link source moves. For tracking the movement, the local link tracking service being located on the source computer (i.e. computer on which the link source is stored prior to the move) is initiated in response to the performance of a file move operation. If the link is moved to a new volume, the local link tracking service notifies a centralized link tracking service of the move. The centralized link tracking service maintains tables containing data of the location in the old volume and the data of the location in a new volume. The files are then updated by means of the link data stored in the local link tracking service or by means of data stored in the centralized link tracking service and the new path can be used. It is realized that this kind of solution uses an additional tool (i.e. link tracking service) for maintaining location tables. Therefore a simpler solution is appreciated.